PlaylistManagement [C#]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using WpfApplication1.ServiceReference1;
using System.Globalization;
using System.Collections;
using System.Collections.ObjectModel;
namespace WpfApplication1
{
public partial class PlaylistManagement : UserControl
{
ServiceSample sample = new ServiceSample();
public PlaylistManagement()
{
InitializeComponent();
}
public PlaylistManagement(string login, string password)
{
InitializeComponent();
List<View_Group> listResult;
sample.GetGroup(out listResult, login, password);
treeGroup.ItemsSource = TreeNode.GetTreeNode(listResult);
}
private void treeGroup_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
List<View_Media> listMediaResult;
sample.GetMedia(out listMediaResult, (treeGroup.SelectedItem as TreeNode).Id??0);
listMediaResult.ForEach(x => x.ThumbnailPath = (x.ThumbnailPath != null) ? (GlobalParam.MEDIA_URL + x.ThumbnailPath) : "");
gridMedia.ItemsSource = listMediaResult;
List<View_Playlist> listPlaylistResult;
sample.GetPlaylist(out listPlaylistResult, (new long[] {(treeGroup.SelectedItem as TreeNode).Id ?? 0}).ToList());
gridPlaylist.ItemsSource = listPlaylistResult;
}
private void gridPlaylist_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (gridPlaylist.SelectedItem == null) return;
List<View_PlaylistComponent> listResult;
sample.GetPlaylistMedia(out listResult, (treeGroup.SelectedItem as TreeNode).Id ?? 0, (gridPlaylist.SelectedItem as View_Playlist).Id);
listResult.ForEach(x => x.ThumbnailPath = (x.ThumbnailPath != null) ? (GlobalParam.MEDIA_URL + x.ThumbnailPath) : "");
gridPlComponent.ItemsSource = new ObservableCollection<View_PlaylistComponent>(listResult);
}
private void gridMedia_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
ListBox box = (ListBox)sender;
if (box.SelectedItem == null) return;
Point pnt = e.GetPosition(box);
ScrollViewer scroll = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(box, 0), 0) as ScrollViewer;
box.SelectedIndex = (int)(scroll.VerticalOffset + (pnt.Y / 48));
DragDrop.DoDragDrop(box, box.SelectedItem, DragDropEffects.Move);
}
private void gridPlComponent_Drop(object sender, DragEventArgs e)
{
if (gridPlaylist.SelectedItem == null) return;
ListBox box = (ListBox)sender;
ObservableCollection<View_PlaylistComponent> list = (box.ItemsSource as ObservableCollection<View_PlaylistComponent>);
View_Media media = e.Data.GetData(typeof(View_Media)) as View_Media;
Point pnt = e.GetPosition(box);
ScrollViewer scroll = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(box, 0), 0) as ScrollViewer;
int position = Math.Min(list.Count, (int)(scroll.VerticalOffset + (pnt.Y / 48)));
View_PlaylistComponent component = new View_PlaylistComponent()
{
ManagerIdAddedBy = media.ManagerIdAddedBy,
MediaId = media.Id,
MediaName = media.Name,
NoBanner = true,
Order = position,
PlaylistId = (gridPlaylist.SelectedItem as View_Playlist).Id,
ThumbnailPath = media.ThumbnailPath,
TypeId = 1
};
sample.AddPlaylistMedia(ref component, (treeGroup.SelectedItem as TreeNode).Id ?? 0);
list.Insert(position, component);
}
}
public class ColorConvert : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return new SolidColorBrush(Color.FromArgb(255, System.Convert.ToByte(values[0]), System.Convert.ToByte(values[1]), System.Convert.ToByte(values[2])));
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}